草庐IT

c++ - 复制构造继承

全部标签

javascript - 在 javascript 中重新定义 Array 构造函数

假设我有以下代码:varsecrets;Array=function(){secrets=this;};上述示例的作者说代码正在重新定义Array构造函数。首先,我不确定this指的是什么。任何人都可以请教吗?第二:下面的代码是否等价?varsecrets;functionArray(){secrets=this;}顺便说一句,上面的代码摘自以下关于Json漏洞的文章:seehere 最佳答案 在这两个示例中,您都将变量Array定义为一个function,它将this分配给secrets.碰巧已经存在一个名为Array的全局对象,

javascript - 在 ES6 + babel 中使用 bluebird promise 导入类(构造函数)

假设我创建了一个node.js库lib.jsexportclassC{constructor(value,callback){callback(false,`Hello${value}`);}task(value,callback){callback(false,"returned"+value);}}重要的部分是类的构造函数需要接受回调,因为它处理数据库连接和文件I/O。如果我现在导入并使用库回调样式,一切都很好(请参阅下面的c1)。我真的很想promise我使用它的库,使对象构造更方便(实际上它是一大堆类和方法)。但是,我找不到在promise-safe中正确地new类的方法。im

javascript - 不是所有的 JavaScript 函数都是构造函数吗?

我以一种奇怪的方式使用eval函数,作为构造函数。try{vary=neweval()}catch(error){console.log("caughta"+error.name+":"+error.message);}它抛出错误,caughtaTypeError:functioneval(){[nativecode]}isnotaconstructor如错误消息所示,eval是一个函数而不是构造函数。问题是,不是所有的javascript函数都充当构造函数吗? 最佳答案 并非所有函数都是构造函数。构造函数是functionvalu

javascript - 如何知道是否通过 super 调用了类构造函数?

如果我有这个:classHuman{constructor(){}}classPersonextendsHuman{constructor(){super();}}是否有可能知道是否通过Person类调用了Human的构造函数?我考虑过arguments.callee但它已被弃用。 最佳答案 检查实例是否属于特定子类很容易(但不明智):classHuman{constructor(){console.log(thisinstanceofPerson);}}要检查它是否是基类(而不是子类)的实例,您可以使用:Object.getPro

javascript - 在构造函数中定义get/set

这可以做到:varo={_foo:"bar",getFoo(){return_foo;},setFoo(value){_foo=value;}};但是我的代码是在构造函数中定义的,所以我想要这样的东西:functionSomething(defaultFoo){var_foo=defaultFoo;getFoo(){return_foo;};//invalidsyntaxsetFoo(value){_foo=value;};//invalidsyntax}varsomething=newSomething("bar");console.log(something.Foo);该语法无效。

javascript - 为什么复制功能在 setTimeout 中不起作用?

当我尝试在setTimeout中copy时,Chrome会报错。setTimeout(function(){copy('a')},0)UncaughtReferenceError:copyisnotdefinedat:1:26它也不适用于window范围。setTimeout(function(){window.copy('a')},0)UncaughtTypeError:window.copyisnotafunction有趣的是,如果我保留对copy的引用并重新使用它,它就可以工作cc=copy;setTimeout(function(){cc('a')},0);在Firefox中,

Javascript Prototype Chaining父类(super class)构造函数和方法调用

我是JavaScript世界的新手,在尝试原型(prototype)链继承时遇到了这个奇怪的问题。我有3个类(class)//classparentfunctionparent(param_1){this.param=param_1;this.getObjWithParam=function(val){console.log("valueinparentclass"+val);console.log("Constructorparameter:"+this.param);};};//classchildfunctionchild(param_1){this.constructor(pa

javascript - 如何复制或复制数组数组

我正在尝试创建一个复制数组数组的函数。我试过blah.slice(0);但它只复制引用。我需要制作一个副本,使原件完好无损。我在http://my.opera.com/GreyWyvern/blog/show.dml/1725165找到了这个原型(prototype)方法Object.prototype.clone=function(){varnewObj=(thisinstanceofArray)?[]:{};for(iinthis){if(i=='clone')continue;if(this[i]&&typeofthis[i]=="object"){newObj[i]=this[

javascript - 构造函数总是函数对象吗?

我正在阅读最新的ECMA-262引用,2011年6月5.1版。在8.6.2部分关于[[Construct]]内部属性的表9:Createsanobject.Invokedviathenewoperator.TheargumentstotheSpecOparetheargumentspassedtothenewoperator.Objectsthatimplementthisinternalmethodarecalledconstructors.标准并未规定构造函数必须是Function对象。那么我们可以拥有一个不是函数对象的构造函数对象吗?Linktothestandardasrequ

javascript - 为什么在原型(prototype)而不是构造函数中声明实例属性?

我完全理解为什么最好使用原型(prototype)而不是构造函数来定义类方法,(即Useof'prototype'vs.'this'inJavaScript?)但是,我最近遇到了一个HashMapclass在原型(prototype)中定义了count属性,在构造函数中定义了map属性:js_cols.HashMap=function(opt_map,var_args){/***UnderlyingJSobjectusedtoimplementthemap.*@type{!Object}*@private*/this.map_={};/...}/***Thenumberofkeyval